package service

import (
	"TodoList/dao"
	"TodoList/logm"
	"TodoList/models"
	"TodoList/serializer"
)

// UpdateTodoService 管理更新事项服务
type UpdateTodoService struct {
	ID int64 `form:"id" json:"id"`
}

// Update 创建更新函数
func (service *UpdateTodoService) Update() serializer.Response {
	var todo models.Todo
	//数据库中查询对应的事项
	res := dao.PgDB.Where("id = ?", service.ID).First(&todo)
	if res.Error != nil {
		logm.Sad.Println("task not found:", res.Error.Error())
		return serializer.Response{
			Code:    501,
			Message: "该事项不存在",
			Error:   res.Error.Error(),
		}
	}
	// 更新事项
	todo.IsFinished = !todo.IsFinished
	res = dao.PgDB.Save(&todo)
	if res.Error != nil {
		logm.Sad.Println("update task failed:", res.Error.Error())
		return serializer.Response{
			Code:    501,
			Message: "事项更新失败",
			Error:   res.Error.Error(),
		}
	}
	logm.Smile.Println("task is updated")
	return serializer.Response{
		Code:    0,
		Message: "更新事项成功",
	}
}
